#include <iostream>
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>

#include <pcl/filters/random_sample.h>

int
main(int argc, char** argv)
{
	pcl::PointCloud<pcl::PointXYZRGBA>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZRGBA>);
	pcl::PointCloud<pcl::PointXYZRGBA>::Ptr cloud_sample(new pcl::PointCloud<pcl::PointXYZRGBA>);

	if (pcl::io::loadPCDFile<pcl::PointXYZRGBA>("C:\\Users\\inust\\source\\repos\\SlamBook\\SlamBook\\raw_data\\pcd\\pos2.pcd", *cloud) == -1) //* 读入PCD格式的文件，如果文件不存在，返回-1
	{
		PCL_ERROR("Couldn't read file\n");
		return (-1);
	}

	pcl::RandomSample<pcl::PointXYZRGBA> rs;
	rs.setInputCloud(cloud);
	//设置输出点的数量   
	rs.setSample(4096);

	//下采样并输出到cloud_sample
	rs.filter(*cloud_sample);

	pcl::io::savePCDFileASCII("C:\\Users\\inust\\source\\repos\\SlamBook\\SlamBook\\raw_data\\pcd\\pos3.pcd", *cloud_sample);


	return 0;

}